package com.yxym.draw;

import javax.swing.*;
import java.awt.*;

@SuppressWarnings({"all"})
public class DrawCircle extends JFrame{//JFrame对应窗口，可以理解成一个画框

    //定义一个画板
    private MyPanel myPanel = null;
    public static void main(String[] args) {
        new DrawCircle();
    }

    public DrawCircle(){//构造器
        //初始化面板
        myPanel = new MyPanel();

        //把面板放到窗口中
        this.add(myPanel);

        //设置窗口的大小
        this.setSize(500,600);

        //退出程序
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        //显示窗口
        this.setVisible(true);
    }
}

//1.先定义一个MyPanel，继承JPanel类，图形在面板上
class MyPanel extends JPanel{

    //1.MyPanel对象是一个面板
    //2.Graphics g 把 g理解成一支笔
    //3.Graphics提供了很多的绘图方法
    //Graphics g

    @Override
    public void paint(Graphics g) {
        super.paint(g);//调用父类的方法完成初始化
        //画出一个圆形
        //g.drawOval(10,10,200,200);

        //画直线
        // drawLine(int x1,int y1,int x2,int y2)
         //g.drawLine(10, 10, 100, 100);

        // 画矩形边框 drawRect(int x, int y, int width, int height)
         //g.drawRect(10, 10, 100, 100);

        // 画椭圆边框
        // drawOval(int x, int y, int width, int height)

        // 填充矩形
        // fillRect(int x, int y, int width, int height)

        // 设置画笔的颜色
//         g.setColor(Color.blue);
//         g.fillRect(10, 10, 100, 100);
        // 填充椭圆 fillOval(int x, int y, int width, int height)
//         g.setColor(Color.red);
//         g.fillOval(10, 10, 100, 100);


         //Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bg.png"));
        //1. 获取图片资源, /bg.png 表示在该项目的根目录去获取 bg.png 图片资源
         //g.drawImage(image, 10, 10, 175, 221, this);
        // 画字符串 drawString(String str, int x, int y)
        // 写字
        // 给画笔设置颜色和字体
         g.setColor(Color.red);
         g.setFont(new Font("隶书", Font.BOLD, 50));
        // 这里设置的 100， 100， 是 "北京你好"左下角
         g.drawString("Hello World!", 100, 100);
        // 设置画笔的字体
        // setFont(Font font)
        // 设置画笔的颜色 setColor(Color c)
    }
}